package com.goal.struggle.model.repository.goal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 用户每日目标
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("goal_daily")
public class GoalDailyDO {
    /**
     * 目标id
     */
    @TableId(type = IdType.AUTO)
    private Integer goalId;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 任务内容
     */
    private String goalContent;
    /**
     * 目标分类 0:普通目标 1:阶梯目标 2:消耗分数值目标
     */
    private Integer goalType;
    /**
     * 任务优先级,1:普通 2:重要不紧急 3:紧急不重要 4:重要且紧急
     */
    private Integer goalPriority;
    /**
     * 目标标签id
     */
    private Integer goalTagId;
    /**
     * 目标分值
     */
    private Integer goalScore;
    /**
     * 目标是否完成: 0:不确认 1:没有完成(由用户手动提交为"完成失败") 2:普通完成(只完成一次) 3:多次完成
     */
    private Integer goalFinish;
    /**
     * 目标完成次数
     */
    private Integer goalFinishNum;
    /**
     * 目标失败需要扣除的分值(或者提取扣除的分数)
     */
    private Integer goalDeductScore;
    /**
     * 循环任务的id,默认为-1,代表该任务不为循环创建的
     */
    private Integer goalCycleId;
    /**
     * 目标属于哪一天,创建的目标所属日期,目标不一定创建的就是今天的(yyyy-MM-dd)
     */
    private String belongTime;
    /**
     * 计划开始时间
     */
    private Date planStartTime;
    /**
     * 计划结束时间
     */
    private Date planEndTime;
    /**
     * 实际开始时间
     */
    private Date actualStartTime;
    /**
     * 实际结束时间
     */
    private Date actualEndTime;
    /**
     * 目标创建时间
     */
    private Date createTime;
    /**
     * 目标更新时间
     */
    private Date updateTime;
    /**
     * 是否删除 0:没有删除 1:已经删除
     */
    private Integer deleted;
}
